﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Conexion;
using System.Data;
using System.Globalization;

namespace AccesoDatos
{
    public class Manejador_Autorizacion
    {
        Conexion.clsConexion objconn = new clsConexion();

        public DataTable tickets_pendientes(int sucid,int op)
        {
            try
            {
                List<clsParametros> lista = new List<clsParametros>();
                lista.Add(new clsParametros("@sucid", sucid.ToString()));
                lista.Add(new clsParametros("@opcion",op.ToString()));
                clsConexion objConn = new clsConexion();
                DataTable Datos = objConn.Datatable_standart("sp_RMA_RegresaTicketPendientes",lista);

                return Datos;
            }
            catch (Exception ex)
            {
                DataTable Datos = new DataTable();
                return Datos;
            }
        }

        public DataTable RegresaSucursales()
        {
            try
            {
                clsConexion objConn = new clsConexion();
                DataTable Datos = objConn.Datatable_standart("sp_RMA_CatSucursales");

                return Datos;
            }
            catch (Exception ex)
            {
                DataTable Datos = new DataTable();
                return Datos;
            }
        }

        public DataTable RegresaPaqueteria()
        {
            try
            {
                clsConexion objConn = new clsConexion();
                DataTable Datos = objConn.Datatable_standart("sp_RMA_web_SelectPaqueterias");

                return Datos;
            }
            catch (Exception ex)
            {
                DataTable Datos = new DataTable();
                return Datos;
            }
        }

        public DataTable RegresaEstatus()
        {
            try
            {
                clsConexion objConn = new clsConexion();
                DataTable Datos = objConn.Datatable_standart("sp_RMA_CargaEstatus1");

                return Datos;
            }
            catch (Exception ex)
            {
                DataTable Datos = new DataTable();
                return Datos;
            }
        }

        public clsAutorizacion Informacion_ticket(string Folid, string Entrada, string Salida, string Serie)
        {
            try
            {
                List<clsParametros> lista = new List<clsParametros>();
                lista.Add(new clsParametros("@folio", Folid));
                lista.Add(new clsParametros("@serie", Serie));
                lista.Add(new clsParametros("@salida", Salida));
                lista.Add(new clsParametros("@entrada", Entrada));
                DataTable Datos = objconn.Datatable_standart("sp_RMA_MantenimientoTicket", lista);
                DataRow[] dr = new DataRow[Datos.Rows.Count];
                Datos.Rows.CopyTo(dr, 0);
                object[] Info = Datos.Rows[0].ItemArray;

                clsAutorizacion objeto = new clsAutorizacion();

                if (Info[12].ToString().Length == 0)
                {
                    Info[12] = DateTime.Now.ToString("y/M/d");
                }

                if (Info[22].ToString().Length == 0)
                {
                    Info[22] = DateTime.Now.ToString("y/M/d");
                }
                objeto.Folio = Folid;
                objeto.Cliente = Info[8].ToString();
                objeto.Costo = Info[13].ToString();
                objeto.Costo_rep = Info[21].ToString();
                objeto.Desc_rep = Info[19].ToString();
                objeto.Descripcion = Info[6].ToString();
                objeto.Factura = Info[11].ToString();
                objeto.Falla = Info[16].ToString();
                objeto.Fecha_fact = DateTime.Parse(Info[12].ToString(),CultureInfo.CreateSpecificCulture("en-US"));
                objeto.Prod_rep = Info[18].ToString();
                objeto.Producto = Info[5].ToString();
                objeto.Serie = Info[7].ToString();
                objeto.Serie_rep = Info[20].ToString();
                objeto.Entrada = Info[4].ToString();
                objeto.Salida = Info[15].ToString();
                objeto.Traspaso = Info[14].ToString();

                return objeto;
            }
            catch { return null; }
        }

        public bool Guardar(string folid,string entrada,string salida,string pedimento,string traspaso,int respuesta,string detalles,int usuario) 
        {
            try
            {
                bool res = false;
                List<clsParametros> lista = new List<clsParametros>();
                lista.Add(new clsParametros("@folio", folid.Trim()));
                lista.Add(new clsParametros("@salida", salida.Trim()));
                lista.Add(new clsParametros("@entrada", entrada.Trim()));
                lista.Add(new clsParametros("@pedimento", pedimento.Trim()));
                lista.Add(new clsParametros("@transferencia", traspaso.Trim()));
                lista.Add(new clsParametros("@respuesta", respuesta.ToString()));
                lista.Add(new clsParametros("@usuario_id", usuario.ToString()));
                lista.Add(new clsParametros("@detalle", detalles.Trim()));

                res = objconn.Procedure_standart("sp_RMA_autoriza_ticket", lista);

                return res;
            }
            catch { return false; }
        }

    }
}
